package com.bookmanger.server.service;

import com.bookmanger.pojo.Entity.PunishmentEntity;
import com.bookmanger.pojo.VO.PunishmentVO;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public interface FineService {
    boolean recordFine(PunishmentEntity punishmentEntity);
    boolean payFine(Integer fineId);
    List<PunishmentEntity> getFinesByReaderId(Integer readerId);
    
    /**
     * 查询读者的所有罚款记录
     */
    List<PunishmentEntity> getAllFinesByReaderId(Integer readerId);
    
    /**
     * 检查逾期图书并发送提醒和罚款
     */
    void checkOverdueBooksAndSendNotifications();
    
    /**
     * 处理丢失图书的罚款
     * @param readerId 读者ID
     * @param isbnId ISBN ID
     * @param managerId 管理员ID
     * @return 是否成功记录罚款
     */
    boolean recordLossBookFine(Integer readerId, Integer isbnId, Integer managerId);
    
    /**
     * 分页查询所有罚款记录
     */
    PageInfo<PunishmentEntity> getAllFines(Integer page, Integer pageSize);
    
    /**
     * 分页查询所有罚款记录详情（包含读者姓名和账号）
     */
    PageInfo<PunishmentVO> getAllFinesWithReaderDetails(Integer page, Integer pageSize);
    
    /**
     * 根据读者ID或姓名查询罚款记录详情
     */
    PageInfo<PunishmentVO> getFinesByReaderIdOrName(String keyword, Integer page, Integer pageSize);
}